TOP

SQL Self Join (自己結合)

SQL Self Join 説明

自己結合は、テーブルがそれ自体に結合される通常の結合です。


Self Join 構文

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition

T1 と T2 は、同じテーブルの異なる別名です。

デモデータベース

このチュートリアルでは、有名なサンプル データベース「Northwind」を使用します。

以下は、テーブル「Customers」(「顧客」) のサンプルです。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL Self Join の例

次の SQL ステートメントは、1 つの都市 (City) から顧客を選択します。

Run SQLSELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City 
FROM Customers A, Customers B 
WHERE A.CustomerID <> B.CustomerID 
AND A.City = B.City 
ORDER BY A.City
MySQL 方言では、「<>」の代わりに「!=」を使用します。